import request from '@/config/axios'

/** 机房实训室课信息 */
export interface LabSchedule {
          id: number; // 机房实训室课表id
          term?: string; // 学期信息，如 2024-2025学年 第二学期
          labName?: string; // 机房名称，如 本校区-博学楼-博学楼机房1
          classSection?: string; // 节次，如 早1、1 08:30-09:15
          mondayUsage: string; // 周一机房使用信息，包括班级、课程、教师等
          tuesdayUsage: string; // 周二机房使用信息，包括班级、课程、教师等
          wednesdayUsage: string; // 周三机房使用信息，包括班级、课程、教师等
          thursdayUsage: string; // 周四机房使用信息，包括班级、课程、教师等
          fridayUsage: string; // 周五机房使用信息，包括班级、课程、教师等
  }

// 机房实训室课 API
export const LabScheduleApi = {
  // 查询机房实训室课分页
  getLabSchedulePage: async (params: any) => {
    return await request.get({ url: `/ao/lab-schedule/page`, params })
  },

  // 查询机房实训室课详情
  getLabSchedule: async (id: number) => {
    return await request.get({ url: `/ao/lab-schedule/get?id=` + id })
  },

  // 新增机房实训室课
  createLabSchedule: async (data: LabSchedule) => {
    return await request.post({ url: `/ao/lab-schedule/create`, data })
  },

  // 修改机房实训室课
  updateLabSchedule: async (data: LabSchedule) => {
    return await request.put({ url: `/ao/lab-schedule/update`, data })
  },

  // 删除机房实训室课
  deleteLabSchedule: async (id: number) => {
    return await request.delete({ url: `/ao/lab-schedule/delete?id=` + id })
  },

  /** 批量删除机房实训室课 */
  deleteLabScheduleList: async (ids: number[]) => {
    return await request.delete({ url: `/ao/lab-schedule/delete-list?ids=${ids.join(',')}` })
  },

  // 导出机房实训室课 Excel
  exportLabSchedule: async (params) => {
    return await request.download({ url: `/ao/lab-schedule/export-excel`, params })
  },

  // 获得导入机房实训室课模板
  importLabScheduleTemplate: async () => {
    return await request.download({ url: `/ao/lab-schedule/get-import-template` })
  },



  // 获取Excel文件中的工作表名称
  getSheetNames: async (file: File) => {
    const formData = new FormData()
    formData.append('file', file)
    return await request.upload({ url: `/ao/lab-schedule/get-sheet-names`, data: formData })
  },

  // 导入机房实训室课
  importLabSchedule: async (file: File, updateSupport: boolean, sheetName?: string) => {
    const formData = new FormData()
    formData.append('file', file)
    formData.append('updateSupport', String(updateSupport))
    if (sheetName) {
      formData.append('sheetName', sheetName)
    }
    return await request.upload({ url: `/ao/lab-schedule/import`, data: formData })
  },


}
